# @Time : 2020/7/27 14:10
# @Author : Fioman 
# @Phone : 13149920693
"""
形态学,即数学形态学(Mathematical Morphology),是图像处理过程中一个非常重要的研究方向.
形态学操作主要包含:
腐蚀,膨胀,开运算,闭运算,形态学梯度,顶帽运算(礼帽运算),黑帽运算等操作.
腐蚀:
腐蚀是最基本的形态学操作之一,它能够将图像的边界消除,使图像沿着边界向内收缩,也可以将小于指定结构元素的部分去除.
腐蚀用来"收缩"或者"细化"二值图像的前景,借此实现去除噪声,元素分割等功能.
在腐蚀的过程中,通常使用一个结构元来逐个像素地扫描被腐蚀的图像,并根据结构元和被腐蚀图像的关系来确定腐蚀结果.
如果结构元完全处于前景图像中,就将结构元中心点说对应的腐蚀结果图像中的像素点处理为前景色(白色,像素点的像素值为1).
如果结构元未完全处于前景图像中(可能部分在,也可能完全不在,就将结果远中心点对应的腐蚀结果图像中的像素点处理为背景色
(黑色,像素点的像素值为0))
所以腐蚀的过程,肯定是前景色变少的过程.
"""

import cv2 as cv
import numpy as np

img = np.zeros((5, 5), dtype=np.uint8)
img[1:4, 1:4] = 1
kernel = np.ones((3, 1), dtype=np.uint8)
erosion = cv.erode(img, kernel)
print("img = \n", img)
print("kernel = \n", kernel)
print("erosion = \n", erosion)

img = cv.imread("erode.jpg",cv.IMREAD_GRAYSCALE)
kernel = np.ones((3,3),dtype=np.uint8)
erosion = cv.erode(img,kernel,iterations=5)

cv.imshow("Original",img)
cv.imshow("Erosion",erosion)
cv.waitKey(0)
cv.destroyAllWindows()














